﻿#if !defined( OPENGLFUNCTIONS_H )
#define OPENGLFUNCTIONS_H

#define M_PI 3.1415925

	typedef struct									// 新建一個結構
	{
		GLubyte	*imageData;							// 圖片數據 (最大 32 位)
		GLuint	bpp;								// 圖片顏色深度 每象素
		GLuint	width;								// 圖片寬度
		GLuint	height;								// 圖片高度
		GLuint	texID;								// 貼圖材質 ID 用來選擇一個材質
	} TGATextureImage;		 


	void OpenGLInit(PictureBox^  picBox , HDC* m_hDC , HGLRC* m_hRC , HWND* m_hWnd);
	void OpenGLShow(HDC m_hDC , HGLRC m_hRC , GLfloat camPos[3] ,  GLfloat camRot[3] , GLfloat camCoord[16]);
	void OpenGLRender();
	void OpenGLSetLighting();
	
	void OpenGLDrawAxis();
	void OpenGLDrawBoxD (const float* pos, const float* R, const float* sides);
	void OpenGLDrawBox (const float sides[3]);

	void OpenGLSetMaterialColor(GLfloat R, GLfloat G, GLfloat B, GLfloat Alpha, GLfloat Shadow);

	void OpenGLSetTransform (const GLfloat pos[3], const GLfloat R[12]);
	void OpenGLCrossProduct3(GLfloat res[3], const GLfloat a[3], const GLfloat b[3]);
	void OpenGLNormalizeVector3 (GLfloat v[3]);
#endif